/**
* Copyright (c) 2015 UNI-TREND Co., Ltd.
* All rights reserved.  
*  
* @file        
* @brief     
* @version     1.0 
* @author      
* @Email       
* @date        2015-12-3
*/
#pragma once
#include <stdlib.h>
//#include <vector>

#include "VerticalSetup.h"
#include "HorizontalSetup.h"
#include "TriggerSetup.h"
#include "AppSetup.h"
#include "DisplaySetup.h"
#include "HelpSetup.h"
#include "AcqSetup.h"
using namespace std;


/**
* CH configurations
*/
#define SCOPE_SETUP_CH_MAX 2
#define SCOPE_SETUP_EXT_CH_MAX 0
#define SCOPE_SETUP_ANOLOG_CH_MAX 16

#define SCOPE_SETUP_CH_NUMS (SCOPE_SETUP_CH_MAX + SCOPE_SETUP_EXT_CH_MAX + SCOPE_SETUP_ANOLOG_CH_MAX)

/**
* scope setup entrance
*/
class CSetup
{
public:
    CSetup();
    ~CSetup();
    
private:
    ISVertical*         m_chArr[SCOPE_SETUP_CH_NUMS];
    CSHorizontal*       m_horz;
    CSTrigger*          m_trig;
    CSDisplay*          m_disp;
    CSAcq*              m_acq;
    CSHelp*             m_help;

    CSApp*              m_apps;
public:
    void SetAcqMode()
    {
        // assert(m_acq is NULL)
        m_acq->SetMode();
    };
};

extern CSetup g_setup;

